home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgramD2.iso / Borland / Borland C++ V5.02 / UIFACE.PAK / UIFACEX.CPP < prev   
C/C++ Source or Header  |  1997-05-06  |  2KB  |  114 lines

  1. //----------------------------------------------------------------------------
  2. // ObjectWindows
  3. // (C) Copyright 1995 by Borland International, All Rights Reserved
  4. //
  5. // Illustrates usage of TUIFace
  6. //----------------------------------------------------------------------------
  7. #include <owl/pch.h>
  8. #include <owl/uihelper.h>
  9. #include "uiface.rh"
  10.  
  11. //
  12. // class TClientWindow
  13. // ~~~~~ ~~~~~~~~~~~~~
  14. class TClientWindow : public TWindow {
  15.   public:
  16.     TClientWindow(TWindow* parent= 0);
  17.  
  18.   protected:
  19.     void  Paint(TDC& dc, bool erase, TRect& rect);
  20.  
  21.   DECLARE_RESPONSE_TABLE(TClientWindow);
  22. };
  23.  
  24. DEFINE_RESPONSE_TABLE1(TClientWindow, TWindow)
  25. END_RESPONSE_TABLE;
  26.  
  27. //
  28. //
  29. //
  30. TClientWindow::TClientWindow(TWindow* parent)
  31. :
  32.  TWindow(parent)
  33. {
  34.   Attr.Style |= (WS_CLIPSIBLINGS|WS_CLIPCHILDREN);
  35.   //SetBkgndColor(TColor::Sys3dFace);
  36. }
  37.  
  38. //
  39. //
  40. //
  41. void
  42. LineRect(TDC& dc, const TRect& rect)
  43. {
  44.   dc.MoveTo(rect.left,  rect.top);
  45.   dc.LineTo(rect.left,  rect.bottom);
  46.   dc.LineTo(rect.right, rect.bottom);
  47.   dc.LineTo(rect.right, rect.top);
  48.   dc.LineTo(rect.left,  rect.top);
  49. }
  50.  
  51. //
  52. //
  53. //
  54. void
  55. TClientWindow::Paint(TDC& dc, bool /*erase*/, TRect& /*rect*/)
  56. {
  57.   TPen pen(TColor(255, 0, 0));
  58.   dc.SelectObject(pen);
  59.  
  60.   TBitmap bmp(*GetModule(), IDB_SAMPLE);
  61.  
  62.   const int margin = 10;
  63.   int width = bmp.Width();
  64.   int height= bmp.Height();
  65.  
  66.   TRect faceRect(TPoint(20, 10), TSize(width, height));
  67.   faceRect.Inflate(margin, margin);
  68.  
  69.   for (int i=TUIFace::Normal; i < TUIFace::Default; i++) {
  70.  
  71.     faceRect.Offset(0, faceRect.Height() + margin/2);
  72.     LineRect(dc, faceRect);
  73.  
  74.     TUIFace uif1(faceRect, bmp);
  75.     uif1.Paint(dc, TPoint(margin, margin), TUIFace::TState(i), false, true);
  76.  
  77.     faceRect.Offset((faceRect.Width() + margin/2), 0);
  78.     LineRect(dc, faceRect);
  79.  
  80.     TUIFace uif2(faceRect, bmp);
  81.     uif2.Paint(dc, TPoint(margin, margin), TUIFace::TState(i), true, false);
  82.  
  83.     faceRect.Offset(-(faceRect.Width() + margin/2), 0);
  84.   }
  85.  
  86.   dc.RestorePen();
  87. }
  88.  
  89. //
  90. // class TSampleApp
  91. // ~~~~~ ~~~~~~~~~~
  92. class TSampleApp : public TApplication {
  93.   public:
  94.     void    InitMainWindow();
  95. };
  96.  
  97. //
  98. //
  99. //
  100. void
  101. TSampleApp::InitMainWindow()
  102. {
  103.   SetMainWindow(new TFrameWindow(0, 0, new TClientWindow()));
  104. }
  105.  
  106. //
  107. //
  108. //
  109. int
  110. OwlMain(int /*argc*/, char* /*argv*/ [])
  111. {
  112.   return TSampleApp().Run();
  113. }
  114.